import request from '../utils/request';

/**
 * 获取所有毕业生年份数据
 * @returns {Promise} 包含年份数组的Promise
 */
export const getGraduateYears = () => {
  return request.get('/graduates/years')
}

/**
* 获取指定年份的学院列表
* @param {number} year 年份
* @returns {Promise} 包含学院数组的Promise
*/
export const getGraduateColleges = (year) => {
  return request.get('/graduates/colleges', {
      params: { year }
  })
}

/**
* 获取指定年份和学院的专业列表
* @param {number} year 年份 
* @param {string} college 学院名称
* @returns {Promise} 包含专业数组的Promise
*/
export const getGraduateMajors = (year, college) => {
  return request.get('/graduates/majors', {
      params: { year, college }
  })
}

// GET http://localhost:8081/api/v1/graduates/info?userName=张三
/**
 * 获取指定用户的毕业生信息
 * @param {string} [userId] - 用户ID（可选参数，不传则获取当前用户信息）
 * @returns {Promise} 包含毕业生信息的Promise对象
 */
export const getGraduateMyInfoService = (userId) => {
  return request.get('/graduates/info', {
      params: { userId }
  })
}

/*
// 使用axios调用
axios.put(`/api/v1/graduates/avatar`,  {
  params: {
    avatarUrl: 'https://example.com/new-avatar.jpg'
  }
*/
// 更新毕业生头像
export const updateGraduateAvatarService = (avatarUrl) => {
  return request.put(`/graduates/avatar`, null,{ 
    params: {
      avatarUrl
    }
  })
}

/**
 *    // 更新自己的信息
    @PutMapping
    @Transactional(rollbackFor = Exception.class)
    public ResponseEntity<Result> updateMyInfo(
            @RequestHeader("Authorization") String authorization,
            @RequestBody UpdateMyGraduateInfoDTO updateMyGraduateInfoDTO
    ) {
        // 解析当前用户身份
        Long currentUserId = MyAuthUtils.parseUserIdFromToken(authorization);
        // 调用服务层方法
        graduateInfoService.updateGraduateInfo(updateMyGraduateInfoDTO, currentUserId);
        return ResponseEntity.ok(Result.success("更新成功"));
    }

 * 
 * 
 */
// 更新自己的信息
export const updateGraduateInfoService = (updateMyGraduateInfoDTO) => {
  return request.put(`/graduates`, updateMyGraduateInfoDTO)
}



/**
 * 管理员按条件分页查询毕业生信息
 * @param {number} [graduationYear] 毕业年份
 * @param {string} [college] 学院名称
 * @param {string} [major] 专业名称
 * @param {number} [pageNum=1] 页码
 * @param {number} [pageSize=10] 每页数量
 * @returns {Promise} 包含分页结果的Promise
 */
export const queryGraduatesByCondition = (params) => {
  return request.get('/graduates/byCondition', {
    params
  })
}

/**
 * 管理员按个人信息分页查询毕业生信息
 * @param {string} [realName] 真实姓名
 * @param {string} [userName] 学工号
 * @param {number} [pageNum=1] 页码
 * @param {number} [pageSize=10] 每页数量
 * @returns {Promise} 包含分页结果的Promise
 */
export const queryGraduatesByPersonal = (params) => {
  return request.get('/graduates/byPersonal', {
    params
  })
}

//管理员更新毕业生信息
export const updateGraduateService = (userId,graduateDTO) => {
  return request.put(`/graduates/${userId}`, graduateDTO);
};
//POST http://localhost:8081/api/v1/users/graduate
//创建毕业生信息
export const createGraduateService = (graduateDTO) => {
  return request.post('/users/graduate', graduateDTO);
};

//删除毕业生信息
export const deleteGraduateService = (userId) => {
  return request.delete('/users/graduate', {
    params: {
      userId
    }
  });
};
